using SheLife.Domain.Entities;

namespace SheLife.Domain.Interfaces.Repositories
{
    /// <summary>
    /// 基础体温仓储接口
    /// </summary>
    public interface IBasalBodyTemperatureRepository : IRepository<BasalBodyTemperature>
    {
        Task<IEnumerable<BasalBodyTemperature>> GetByUserIdAsync(Guid userId);
        Task<IEnumerable<BasalBodyTemperature>> GetByUserIdAndDateRangeAsync(Guid userId, DateTime startDate, DateTime endDate);
        Task<BasalBodyTemperature?> GetByUserIdAndDateAsync(Guid userId, DateTime date);
        Task<IEnumerable<BasalBodyTemperature>> GetLatestByUserIdAsync(Guid userId, int count = 7);
        Task<double> GetAverageTemperatureAsync(Guid userId, int days = 7);
        Task<double> GetTemperatureVariationAsync(Guid userId, int days = 7);
    }
}